System and method for generating and employing short length iris codes

ABSTRACT

A system and method for generating compact iris representations based on a database of iris images includes providing full-length iris codes for iris images in a database, where the full-length iris code includes a plurality of portions corresponding to circumferential rings in an associated iris image. Genuine and imposter score distributions are computed for the full-length iris codes, and code portions are identified that have a contribution that provides separation between imposter and genuine distributions relative to a threshold. A correlation between remaining code portions is measured. A subset of code portions having low correlations within the subset is generated to produce a compact iris representation.

BACKGROUND

Technical Field

The present invention relates to iris recognition and more particularly to systems and methods which employ a reduce iris code for more efficient iris comparisons.

Description of the Related Art

A texture of the human iris has been shown to have excellent individual distinctiveness and thus is suitable for use in reliable identification. A conventional iris recognition system unwraps the iris image and generates a binary feature vector by quantizing the response of selected filters applied to the rows of this image.

The iris may be segmented and unwrapped into a rectangular image. From the unwrapped iris, texture is extracted by applying a Gabor filter bank. This is encoded into a binary image, known as the iris code that serves as the feature vector for recognition. Some regions of the iris provide more consistent texture than others. For example, pupil dilation causes the pupil-adjacent texture to be particularly volatile, and the presence of eyelashes or eyelids can substantially alter an iris code's appearance if they are not properly masked out. Moreover, the radial unwrapping technique is tuned to over-sample the area closest to the pupil while under-sampling the region where the iris meets the sclera. The band in the middle iris provides a more personal description. This region maps to the ciliary zone of the iris.

There has been some work attempting to isolate regions of the iris code which are either inconsistent (fragile) or, conversely, less stable. These studies looked directly at the final binary representation. Inconsistent bits were discovered by analyzing several binary iris codes of the same eye and counting the number of times a bit was a one or a zero. When bits that had a high variability were masked out, the false reject rate was reduced. This work discovered a fragile bit mask for each person in a gallery.

Other researchers have examined the effect of smaller iris codes on recognition and generate an iris code from the outer and inner rings of the iris. These techniques empirically show that texture closer to the pupil may perform better in recognition than texture closer to the sclera. Similarly, sampling rates were adjusted to generate smaller iris codes. These approaches reduce the size of iris code by adjusting the way the iris is unwrapped, but these works fail to assert that any portion of the iris should be favored when dealing in the context of iris recognition.

There has been some work attempting to isolate regions of the iris code which are either inconsistent (fragile) or, conversely, more discriminative. These studies looked directly at the final binary representation. Inconsistent bits were discovered by analyzing several binary iris codes of the same eye and counting the number of times a bit was a one or a zero. Sampling rates are adjusted to generate smaller iris codes. However, these approaches reduce the size of iris code by adjusting the way the iris is unwrapped. These techniques change the format of the code, which impairs the backward compatibility of the representation (e.g. with regards to rotation compensation).

SUMMARY

A system and method for generating compact iris representations based on a database of iris images includes providing full-length iris codes for iris images in a database, where the full-length iris code includes a plurality of portions corresponding to circumferential rings in an associated iris image. Genuine and imposter score distributions are computed for each row in the full-length iris codes, and code portions are identified that have a contribution that provides separation between imposter and genuine distributions relative to a threshold. A correlation between remaining code portions is measured to estimate a proper sampling rate. A subset of code portions having low correlations within the subset is generated to produce a compact iris representation.

A system for generating compact iris representations based on a database of iris images includes a database configured to store full-length iris codes for all iris images, where each iris code includes a plurality of portions corresponding to circumferential rings in an associated iris image. A processor is configured to compute genuine and imposter score distributions for the portions of iris codes and determine which code portions of the iris codes provide a highest contribution to a separation between imposter and genuine distributions, the processor being configured to measure a correlation between the remaining code portions to determine a subset of the code portions having lowest correlations within the subset such that a compact iris representation is generated from the subset.

These and other features and advantages will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings.

BRIEF DESCRIPTION OF DRAWINGS

The disclosure will provide details in the following description of preferred embodiments with reference to the following figures wherein:

FIG. 1 is a diagram showing generation of iris codes;

FIG. 2 shows an example of two eye rotations;

FIG. 3A shows plots of score distributions for mated and unmated irises;

FIG. 3B shows a plot of cumulative probability versus score for mated and unmated scores also showing a 0.90 KS distance;

FIG. 4 is a plot for an eye image showing distribution separation versus iris location and further depicting a region of interest having a highest separation;

FIG. 5 is a block/flow diagram of a system/method for creating compact iris codes in accordance with one embodiment;

FIG. 6 is a plot of a correlation measure versus row offset to show local correlation of rows;

FIG. 7 is a diagram showing a FLIC transformed into a SLIC in accordance with one embodiment;

FIG. 8 is a block/flow diagram of a system/method for creating compact iris codes in accordance with another embodiment; and

FIG. 9 is a block/flow diagram of a system for generating compact iris codes in accordance with a useful embodiment.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

In accordance with the present principles, iris code is reduced by locating high discriminatory information regions in the iris. A resulting transformation reduces the size of the iris code. A short-length iris code (SLIC) is achieved, which, in one embodiment, is at least 12.8 times smaller than a full-length iris codes (FLIC). The present principles seek to shrink an iris representation by finding those regions of the iris that contain the most descriptive potential. The present inventors show through experiments that the regions close to the pupil and sclera contribute least to discrimination, and that there is a high correlation between adjacent radial rings.

Using these observations, a short-length iris code (SLIC) of only 450 bytes is achieved. The SLIC is an order of magnitude smaller than the FLIC and yet has comparable performance. The smaller sized representation has the advantage of being easier to store as a barcode, and also reduces the matching time per pair. The present principles use statistical techniques to reduce the size of a standard, rectangular sampled iris code. Maintaining the same format enhances the backward compatibility of the representation (e.g., with regards to rotation compensation) while smaller codes mean faster systems and reduced storage requirements.

As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.

A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.

Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).

Aspects of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.

The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.

The flowchart and block diagrams in the FIGs. illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.

Referring now to the drawings in which like numerals represent the same or similar elements and initially to FIG. 1, an iris code 102 is an individual descriptor in an iris recognition system 100. The iris code 102 is a binary image that encodes a texture of the iris. The various stages in the generation of an iris code include unwrapping the iris in block 110, computing an eyelid mask in block 112, and generating the full length iris code 102. To generate an iris code, the iris is first segmented from an image and non-rigidly unwrapped into a rectangular template 113. Then, two filter masks 115 and 117 are convolved over the unwrapped iris (encoding 120) and the sign of each pixel's response is used to encode that pixel. The collective responses to the odd filter 115 are referred to as the real (RE) portion of the iris code, and the responses to the even filter 117 are known as the imaginary (IM) portion (e.g., edge detection kernel and bar detection kernel filters respectively). In the event that a pixel is occluded by an eyelid in the original image (e.g., a “bite” 116), that pixel is removed from comparison in the iris code. There are many variants on this scheme.

In recognition, two iris codes are said to match (correspond to the same eye) if the normalized Hamming distance between them is less than a pre-defined threshold. The normalized Hamming distance is the number of unmasked bits that differ between the codes divided by the total number of unmasked bits. The equation for the Normalized Hamming distance between two iris codes with occlusion masks is:

$\begin{matrix} {{{HD}\left( {A,B} \right)} = {\frac{\left. ||{\left( {A \oplus B} \right)\bigwedge A_{mask}\bigwedge B_{mask}} \right.||}{\left. ||{A_{mask}\bigwedge B_{mask}} \right.||}.}} & (1) \end{matrix}$

An iris recognition system 100 also needs to compensate for changes in rotation by aligning iris codes. Two codes of the same eye can differ because of head tilt relative to the camera at the time of acquisition.

Referring to FIG. 2, two instances (140 and 142) of a same eye with drastically different tilts is illustratively shown. To correct for relative rotations between the members of a valid pairs, the Hamming distance is calculated at every possible linear shift (equivalent to a fixed rotation) of one iris code relative to the other within a defined rotation range. The codes are said to be aligned when the distance between them is minimized, and it is this distance which is used as the match score.

In a 1:N (identification) system, a probe iris code is matched with each element in a gallery (database of individuals). The identity of the probe is assigned by its distance to a gallery instance. This is a computationally expensive operation and grows linearly as larger gallery sets are considered.

The number of bit operations is: b_(ops)=N·h·w·θ (2) where h is the height of the iris code, w is its width, θ is number of shifts for alignment correction and N is the number of gallery images. When h=128, w=360, θ=20 and N=10,000 (a moderate size database), the number of bit operations is 18 billion. Reducing the number of features in the iris code or the gallery size will reduce the number of bitwise operations and thus speed up an identification system. Notice that reducing the height of the iris code by an order of magnitude will result in a matching system that is an order of magnitude faster.

The present principles reduce the size of the iris code without substantially impairing performance. This is done by locating and extracting the global texture which best encodes identity. The basic methods are independent of the dataset, segmenter, or encoding used.

LOCATING DISCRIMINATORY INFORMATION: An iris recognition system (100) determines a match by thresholding the distance between two aligned codes. The distances between mated pairs should be less than the distances between unmated pairs. A mated pair is a set of two codes from the same eye whereas an unmated pair is a set of two codes from different eyes. The mated and unmated distributions of Hamming distances (score distributions) are used to visualize the potential operation of a recognition system.

Referring to FIGS. 3A and 3B, two sets of mated and unmated score distributions are depicted. In a good recognition system 146, all mated scores 147 are below a decision threshold 148 and unmated scores 149 are above the threshold 148. In a poor recognition system 150, there are mated scores 151 above a decision threshold 152 and unmated scores 153 below the threshold 152. Iris comparisons that map to these regions 151 and 153 of the histograms will thus cause errors.

In FIG. 3B, the discriminatory capacity of each row is its ability to contribute to the overall separation between the mated and unmated score distributions. We propose Kolmogorov-Smirnov (KS) analysis to measure each row's capacity. KS analysis returns the distance between cumulative distribution functions (CDFs) at a given point along the domain. Expressed in an equation: KS(row_(i))=CDF_(M)(row_(i))−CDF_(NM)(row_(i)) (3) where CDF_(M) and CDF_(NM) are the cumulative distributions for the mated and non-mated scores, respectively. For our work, we measure the difference in mated and unmated CDFs when the mated CDF is at 0.9 (i.e. 90% of the mated pairs have distances below this threshold). In terms of recognition, the KS distance is the true-negative rate when the true positive rate is 0.9.

We hypothesize that the KS distance for various regions of the iris will be different. The area close to the pupil is volatile because it fluctuates with dilation (or inaccurate segmentation) so it will have less discriminatory capacity.

Referring to FIG. 4, a band 158 in the middle of an iris will have high information content (region of interest) because it is rich in largely static texture. The region closest to the sclera lacks texture so it will likely have a lower value (it can also be more variable due to inaccurate unwrapping). The regions with the highest individual KS scores give the largest contributions to a separation between full distributions and are therefore the most valuable for recognition.

The KS analysis will highlight a broad annular region of interest 160 within the iris. This region of interest 160 can be further reduced by subsampling the texture therein to determine subsamples 162. In particular, one row of the iris code (ring) may not be much different than the row above or beneath it. To properly subsample the region of interest 160, however, we need to understand the locality of texture. To do this we measure the correlation of each row in the iris code with all other rows. The correlation measure we use is simply:

$\begin{matrix} {{{Cor}_{({i,j})} = \frac{\left. ||{\left( {{row}_{i} \oplus {row}_{j}} \right)\bigwedge{mask}_{i}\bigwedge{mask}_{j}} \right.||}{\left. ||{{mask}_{j}\bigwedge{mask}_{i}} \right.||}},{or}} & (4) \\ {{equivalently},{{Cor}_{({i,j})} = {1 - {{{HD}\left( {{row}_{i},{row}_{j}} \right)}.}}}} & (5) \end{matrix}$

The correlation analysis shows high local correlation between nearby rows up to a certain distance. The width of the correlation neighborhood will thus dictate the proper row sampling rate.

Using the analysis methodology above, we develop a transform that takes a full-length iris code (FLIC) into a short-length iris code (SLIC). The initial KS analysis will highlight a region of interest, and uniform sampling of that region will extract the features which best encode identity. The samples will be rich in global texture and high in discriminatory capacity. The resulting SLIC will have a smaller footprint leading to faster recognition, and should have approximately the same performance.

Referring to FIG. 5, a block/flow diagram showing construction of a SLIC from a FLIC is illustratively shown. A known dataset was used to test our proposed method. This database had 5 images of 92 eyes. To generate the iris codes from these images we first segmented and unwrapped the irises. All the images in the database were segmented. A visual inspection of the unwrapped textures and masks removed instances of poor segmentation. The resulting database was a subset with 85 eyes which the authors determined to be adequately segmented and encoded.

From the unwrapped irises, the texture was extracted with a bank of 1D log Gabor filters. The initial unwrapped iris images were 360×64 pixels and the iris codes were 360×128. Half of this full-length iris code (FLIC) corresponded to the real portion and half to the imaginary portion from the filter bank.

The “clean” subset was further partitioned into training and testing sets. The training set was used for all the analyses in the following section, whereas the testing set was withheld to further validate our predictions. A total of 23 eyes (115 codes) were used for inferring statistics. All 85 eyes were then used for testing.

In block 202, the parameters of the FLIC-to-SLIC transform is determined by first generating an all-aligned-pairs set. This includes making mated and unmated pairs of iris codes. In block 204, from the 115 codes, alignments for all pairs (both from the same individual and from different people) were found. In block 206, a Hamming distance is computed for all rows in the aligned code. In block 208, the minimum Hamming distance is used as a criterion, and a compensation range of up to 180 degrees is used to analyze match and non-match score distributions for each row, (e.g., shift one code relative to the other such that the normalized Hamming Distance is minimized). If the distance between two codes is small, they are said to come from the same eye of the same person. Normalized Hamming distance is used where the number of different bits over number of total bits is determined. Pairs of codes that originated from the same eye were labeled mated and pairs which came from different eyes were labeled unmated.

In block 210, the discriminatory capacity for each row in the iris code is measured by KS analysis as described by Equation 3. Both the real and imaginary portions of the iris code have the same general shape in this plot. The regions close to the pupil and sclera are shown to have less discriminatory capacity than the rows mapping to the middle region of the iris. From this plot, e.g., we could determine that our primary region of interest is between rows 10 and 52 of both the real and imaginary portion of the iris code. The rows with the most discriminatory capacity are selected. In block 212, the selected rows are employed for indexing or fast iris recognition.

We theorized that evenly sampling the region of interest would be sufficient. To prove this, and determine an adequate sampling rate, we inspected local correlations of textural patterns in the iris code. A correlation matrix was generated for the all-rows for each iris code in the training set. An average correlation matrix was generated by averaging each element of the matrix across all the training instances. A projection around the major diagonal was then used to generate the plot in FIG. 6. It can be seen from this plot that the correlation drops off after about 10 rows, suggesting that rows this far apart contain substantially different information.

Referring to FIG. 7, a short iris representation 302 is illustratively depicted. The short-length iris code (SLIC) transform 315 is a code-level operation which preferably samples a middle band of the iris. The SLIC 302 is generated by locating and extracting regions of the iris code with high discriminatory capacity, meaning that these rows most contribute to separating matches from non-matches. Because of the physiology of the pupil, “useful” rows are identified in the code.

From a set of training iris code pairs, Kolmogorov-Smirnov analysis is preferably performed to locate the rows of the iris code with the most information content. A center portion of the iris, mapping to the middle rows of the iris code, was found by the present inventors to be a region where the bulk of the discriminatory texture resided. The rows in this region are then evenly sampled to make the new, shorter iris code. In one example, the FLIC 340 (360×128 pixels) is reduced to 360×10 pixels in the SLIC 302.

To the select the “useful” rows, we use a training data set. Using an available iris image analysis tool, we produce the full length iris codes (FLIC) 340. From the FLIC 340, the present method produces a SLIC 302. The information about how to produce the SLIC from the FLIC is learned from the training set. Once the process has been learned, we can use it in a matching process of the iris code using SLIC itself.

By applying the method, one can reduce the iris code size significantly by eliminating redundant rows that do not contribute much to the decision making process. In experiments, this invention gives iris codes that are 10× smaller than the original (e.g., FLIC=360×64×2=5760 bytes versus SLIC=360×5×2=450 bytes) but with approximately the same matching accuracy. This allows iris codes to be stored in smaller formats such as 2D barcodes. The methods can also be used to match iris codes faster since there are fewer bits to compare.

Therefore, a system and method of generating smaller, yet still effective, iris codes has been described. KS statistics have illustratively been employed to analyze the discriminatory capacity of different rows in the iris code. The analysis revealed rows 10 to 52 as contributing most to the separation of mated and non-mated score distributions. We then used an autocorrelation index to reduce the iris code size even more by sampling rows within this region (e.g., every 10th was sufficient). It was empirically shown for the tested dataset that the resulting short length iris codes maintain accuracy comparable to the full length iris codes. Since the code size is reduced by an order of magnitude, the overall system is correspondingly faster and uses less memory. The derived compact codes are also more easily stored in smart cards, magnetic strips, 2D barcodes, etc. It should be noted that in convention systems there is a problem of storing iris codes on portable media, such as ID cards. A typical magnetic stripe holds several hundred bytes while a 2D barcode is limited a few thousand bytes. Current iris codes do not fit on magnetic stripes and push the limits of 2D barcode technology. Smart cards can hold several thousand bytes, but typically not the 5.76 Kb needed by a full length iris code (360×128).

Referring to FIG. 8, a method for generating compact iris representations based on a database of iris images is illustratively shown in accordance with one embodiment. In block 402, full-length iris codes for iris images are generated or provided in a database, where the full-length iris code includes a plurality of portions corresponding to circumferential rings in an associated iris image. This preferably includes a region of interest between a pupil and a sclera in the iris code.

In block 404, genuine and imposter score distributions are computed for the full-length iris codes. (See e.g., FIG. 3). In block 406, code portions are identified that have a contribution that provides separation between imposter and genuine distributions relative to a threshold. This may include computing a Hamming distance for all rows in an aligned code where a minimum Hamming distance is used as a criterion to analyze genuine and imposter score distributions for each row. Code portions in rows of an iris code are preferably identified for both a real and imaginary portion of the iris code (e.g., between a pupil and a sclera in the iris code, and more particularly between, e.g., rows 10 and 52). In block 407, subsampling rows in a region of interest may be performed to further reduce computational complexity.

In block 408, a correlation is measured between remaining code portions. In block 410, a subset of code portions is generated having low correlations within the subset to produce a compact iris representation. This includes determining a discriminatory capacity for rows in an iris code. Rows in an iris code having highest discriminatory capacity for the subset are selected. The discriminatory capacity may be measured by a Kolmogorov-Smirnov (KS) analysis.

In block 412, using the information learned in this method parameters of a full length iris code to compact iris code transform may be determined. This provides a method by which all full length codes can easily be converted. By generating an all-aligned-pairs set information may be gleaned which assist in determining the best rows or locations to employ to create the best compact iris code.

Referring to FIG. 9, a system 500 for generating compact iris representations based on a database of iris images is illustratively shown. System 500 may be employed to transform FLIC codes to SLIC codes, or may be employed to generate a transform for performing this task. System 500 includes a database 502 configured to store full-length iris codes 504 for all iris images. Each iris code 504 includes a plurality of portions corresponding to circumferential rings in an associated iris image. The images may be gathered in the database 502 using a scanner or sensor 510, although the images may be downloaded from a memory device, a network, etc.

A processor 512 is configured to compute genuine and imposter score distributions for the iris codes and determine which code portions of the iris code provide a highest contribution to a separation between imposter and genuine distributions. This separation indicates distinctiveness. The processor 512 is also configured to measure a correlation between the remaining code portions to determine a subset of code portions having lowest correlations within the subset such that a compact iris representation 514 is generated from the subset. The subset information provides highly discriminatory code data used to reduce the size of the full length codes with any significant compromising of accuracy. The compact codes may be loaded onto a device, such as a handheld computing device, an electronic device or any device where security or the identity of the user needs to be determined. The compact iris codes reduce the amount of memory space needed to store an iris code. This opens up the possibility of using iris recognition in devices previous not capable of using such a technology due to memory limitations.

In one embodiment, the system 500 generates a transform 520 to generate compact iris codes. The transform 520 converts a full length iris codes to a compact iris code based upon information learned determining high discrimination information. The transform 520 may be employed in other devices to convert FLICs to SLICs. This provides an easy way to convert FLIC databases. The transform 520 may be reversible.

Having described preferred embodiments of a system and method for generating and employing short length iris codes (which are intended to be illustrative and not limiting), it is noted that modifications and variations can be made by persons skilled in the art in light of the above teachings. It is therefore to be understood that changes may be made in the particular embodiments disclosed which are within the scope of the invention as outlined by the appended claims. Having thus described aspects of the invention, with the details and particularity required by the patent laws, what is claimed and desired protected by Letters Patent is set forth in the appended claims. 

What is claimed is:
 1. A non-transitory computer readable storage medium comprising a computer readable program for generating compact iris representations based on a database of iris images, wherein the computer readable program when executed on a computer causes the computer to perform the steps of: computing genuine and imposter score distributions for full-length iris codes for iris images in a database, where the full-length iris codes include a plurality of portions corresponding to circumferential rings in an associated iris image; identifying and retaining code portions that have a contribution that provides separation between imposter and genuine distributions relative to a threshold; measuring a correlation between remaining code portions; and generating a subset of the remaining code portions having low correlations within the subset to produce a compact iris representation.
 2. The non-transitory computer readable storage medium as recited in claim 1, further comprising determining parameters of a full length iris code to compact iris code transform by generating an all-aligned-pairs set.
 3. The non-transitory computer readable storage medium as recited in claim 2, wherein identifying code portions includes computing a Hamming distance for all rows in an aligned code where a minimum Hamming distance is used as a criterion to analyze genuine and imposter score distributions for each row.
 4. The non-transitory computer readable storage medium as recited in claim 1, wherein the separation is based upon a discriminatory capacity for rows in an iris code.
 5. The non-transitory computer readable storage medium as recited in claim 4, wherein discriminatory capacity is measured by a Kolmogorov-Smirnov (KS) analysis.
 6. The non-transitory computer readable storage medium as recited in claim 1, wherein generating a subset includes selecting rows in an iris code having highest discriminatory capacity for the subset.
 7. The non-transitory computer readable storage medium as recited in claim 6, wherein discriminatory capacity is measured by a Kolmogorov-Smirnov (KS) analysis.
 8. The non-transitory computer readable storage medium as recited in claim 1, wherein identifying code portions includes identifying code portions in rows of an iris code for both a real and imaginary portion of the iris code.
 9. The non-transitory computer readable storage medium as recited in claim 1, wherein generating a subset of code portions includes subsampling rows in a region of interest between rows 10 and 52 of the iris code.
 10. The non-transitory computer readable storage medium as recited in claim 1, wherein generating a subset includes computing a Hamming distance between two portions from a same iris image and taking an average of this distance over the iris images in the database.
 11. A system for generating compact iris representations based on a database of iris images comprising: a database configured to store full-length iris codes for all iris images, where each iris code includes a plurality of portions corresponding to circumferential rings in an associated iris image; and a processor configured to compute genuine and imposter score distributions for the portions of iris codes and determine which code portions of the iris codes provide a highest contribution to a separation between imposter and genuine distributions, the processor being configured to measure a correlation between the remaining code portions to determine a subset of the code portions having lowest correlations within the subset such that a compact iris representation is generated from the subset.
 12. The system as recited in claim 11, further comprising a transform generated from the subset to generate compact iris codes.
 13. The system as recited in claim 11, wherein the process executes program code for identifying highest contribution code portions by computing a Hamming distance for all rows in an aligned code where a minimum Hamming distance is used as a criterion to analyze genuine and imposter score distributions for each row; and the subset of code portions includes a highest discriminatory capacity for rows in an iris code.
 14. The system as recited in claim 13, wherein the separation is measured by a Kolmogorov-Smirnov (KS) analysis.
 15. The system as recited in claim 11, wherein the code portions having a highest contribution includes rows of an iris code between rows 10 and 52 of both a real and imaginary portion of the iris code.
 16. The system as recited in claim 11, wherein the processor is further configured to identify and retain code portions that have a contribution that provides separation between imposter and genuine distributions relative to a threshold.
 17. The system as recited in claim 16, wherein the processor is further configured to generate a subset of the remaining code portions having low correlations within the subset to produce a compact iris representation.
 18. The system as recited in claim 11, wherein the processor is further configured to determine parameters of a full length iris code to compact iris code transform by generating an all-aligned-pairs set.
 19. The system as recited in claim 16, wherein the code portions are identified by computing a Hamming distance for all rows in an aligned code where a minimum Hamming distance is used as a criterion to analyze genuine and imposter score distributions for each row.
 20. The system as recited in claim 16, wherein the separation is based upon a discriminatory capacity for rows in an iris code. 